[Tips] Alteryxで「日本時間」を「UNIX時間」に変換してみた
こんにちは、まつおかです。
Alteryxでダウンロードツールを使用して、とあるREST APIを実行しようとしたところ、パラメーターで指定する日時の型が「Unix time」だったので、日本時間からの変換方法を調べてみました。
UNIX時間とは
まずは「UNIX時間とはなんぞや」というところからですが、UNIX時間とは主にUNIX系OSで使用されている日時表現のひとつです。
1970年1月1日 午前0時0分0秒 から協定世界時(UTC)までの秒数で表します。
協定世界時(Universal Time Coordinated:UTC)とは、現在世界で標準として使用している時間であり、日本標準時(Japan Standard Time:JST)の 9時間前の日時となります。
ちなみに、1970年1月1日 午前0時0分0秒 のことは「UNIXエポック」と呼ぶのだそうです。
日本時間 を UNIX時間 に変換
では早速Alteryxを使って日本時間をUNIX時間に変換してみます。
UNIX時間の定義がわかればそれほど難しくはないです!
まずは、テキスト入力ツールで日本時間の日時を入れるフィールドを作り、次のセレクトツールでデータの型を DateTime に変更しています。ここは実際のデータに合わせ必要に応じて変更してください。
最後に繋いだフォーミュラツールでUNIX時間への変換をしています。詳細は以下となります。
- UTC
- UNIX時間に変換するためには協定世界時が必要ですので、DateTimeAdd 関数を使用し日本時間から9時間前の日時を計算します。
DateTimeAdd([JST],-9,"hour")
- UNIX時間に変換するためには協定世界時が必要ですので、DateTimeAdd 関数を使用し日本時間から9時間前の日時を計算します。
- Unix_time
- UTCとUNIXエポックとの秒数差を DateTimeDiff 関数を使用して計算することで UNIX時間 を出すことができます。
DateTimeDiff([UTC],'1970-01-01 00:00:00', 'sec')
- UTCとUNIXエポックとの秒数差を DateTimeDiff 関数を使用して計算することで UNIX時間 を出すことができます。
今回はわかりやすいようにUTCの計算とUnix_timeの計算を分けましたが、もちろん関数を入れ子にして一度に算出することも可能です!
DateTimeDiff(DateTimeAdd([JST],-9,"hour"), '1970-01-01 00:00:00', 'sec')
うるう秒について
数年に一度、季節のズレを調整するためうるう秒が挿入されます。
詳細はこちらをご参照ください。
UNIX時間に関しては、うるう秒が挿入された場合も数は増えないそうです。
例えば、日本時間の 2012年1月1日 午前8時59分59秒 のあと、うるう秒が挿入され 午前8時59分60秒が発生しているのですが、UNIX時間は 8:59:59 も 8:59:60 も同じく「1325376000」となります。
特にうるう秒を意識することもなく、DateTimeDiff 関数を使い 1970年1月1日 午前0時0分0秒 からの秒数を算出すれば問題はありません。
さいごに
今回はAlteryxを使用した場合の UNIX時間の算出方法をご紹介しましたが、他のツールでも計算方法は同じです。
- Tableau
-
Excel
- Unix_timeの書式は60秒以上の秒を表示しますので書式を [s] にする必要があります
さて、これでダウンロードツールで REST API を使って無事データを取得できたので、このあと加工していきたいと思います!
ダウンロードツールも活用するととても便利ですのでぜひ!